package com.smart.community.user.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * 按角色分组的用户列表DTO
 * 用于返回按角色分组的用户列表，支持角色级别的批量选择
 * 
 * @author Wu.Liang
 * @since 2025-01-30
 * @version 1.0.0
 */
@Data
@Schema(description = "按角色分组的用户列表DTO")
public class UserByRoleGroupDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 角色ID
     */
    @Schema(description = "角色ID")
    private Long roleId;

    /**
     * 角色名称
     */
    @Schema(description = "角色名称")
    private String roleName;

    /**
     * 角色编码
     */
    @Schema(description = "角色编码")
    private String roleCode;

    /**
     * 该角色下的用户数量
     */
    @Schema(description = "该角色下的用户数量")
    private Integer userCount;

    /**
     * 该角色下的用户列表
     */
    @Schema(description = "该角色下的用户列表")
    private List<UserSimpleDTO> users;

    /**
     * 角色描述
     */
    @Schema(description = "角色描述")
    private String roleDescription;

    /**
     * 角色状态（0：禁用，1：启用）
     */
    @Schema(description = "角色状态（0：禁用，1：启用）")
    private Integer roleStatus;

    /**
     * 排序顺序
     */
    @Schema(description = "排序顺序")
    private Integer sortOrder;
}
